#ifndef _FUNCTION_TEMPLATE_H
#define _FUNCTION_TEMPLATE_H

template <typename T>
int cmp(const T &tA, const T &tB){
	if(tA > tB)
		return 1;
	else if(tA == tB)
		return 0;
	else
		return -1;
}


/*
template<class T, U, typename V> // error identifier 'U'
void f1(T, U, V);

template <class T>
T f2(int &T);

inline template <class T> // missing ';' before 'template <' // should remove 'inline'
T foo(T, unsigned int*);

template<class T>
f4(T, T); // missing type specifier // return type

typedef char Ctype;
template <typename Ctype>
Ctype f5(Ctype a);
*/


template <class Type>
Type bar(Type, Type);

template <class Type>
Type bar(Type, Type) ;


template <class T1, class T2>
void bar(T1,T2) ;

template <class C1, typename C2>
void bar(C1, C2);

#endif // _FUNCTION_TEMPLATE_H